Parallel Array Class Implementation Using C++ STL Adaptors
نویسندگان
چکیده
STL Adaptors can combine operations and are used in elimination of temporaries in a C ++ array class; this technique is known as Expression Templates or Template Closures. Since the technique is dependent on a simple expansion of element references, some di culties exist in applying the technique to a parallel array class, where distribution with ghost-cells and notation of array sections complicate the expansion of element references. The technique is extended so that it separates element references in two cases to keep the expansion simple in each case. This achieves good performance even with the existence of ghost-cells, whereas the implementation of an existing technique does not support it well because of the required amount of coding. In addition, currying facility of Adaptors is used for supporting nested data structures, where operations are required to nest so that they can be applied to sub-structures. An example shows a mapping of reductions is concisely expressed in a matrix-vector multiplication.
منابع مشابه
Parallel Array Class Implementation Using C++ Stl Adaptors |extended Abstract|
An array class in C++ is one of the most important classes in high-performance computing eld. In the parallel extended C++ language HPC++ (High Performance C++) [1], a data-parallel array class is proposed as a library, which can be implemented without language extensions. Although implementing an array class entirely in a library makes it highly portable, the well-known temporary problem [2] w...
متن کاملA Portable MPI-Based Parallel Vector Template Library
This paper discusses the design and implementation of a polymorphiccollection library for distributed address-space parallel computers. The library provides a data-parallel programming model for C++ by providing three main components: a single generic collection class, generic algorithms over collections, and generic algebraic combining functions. Collection elements are the fourth component of...
متن کاملExperiences with the C++ Standard Template Library and MPI for a Parallel Particle Simulation Method
In this paper we discuss design and implementation of a parallel particle simulation method from the realm of material sciences (laser ablation). To achieve a high degree of portability and eeciency we combine C++ and the MPI message passing library. Following a current trend in C++ towards template-based class libraries we use the Standard Template Library (STL). One of our results is that the...
متن کاملLock-Free Dynamically Resizable Arrays
We present a first lock-free design and implementation of a dynamically resizable array (vector). The most extensively used container in the C++ Standard Template Library (STL) is vector, offering a combination of dynamic memory management and constant-time random access. Our approach is based on a single 32-bit word atomic compare-and-swap (CAS) instruction. It provides a linearizable and high...
متن کاملAutotuning a Random Walk Boolean Satisfiability Solver
In this paper we present a performance optimization case study for a kernel with dynamic data structures, few instructions on boolean variables per node, and data-dependent control flow. This kernel serves as model for wide class of important algorithms operating on dynamic data structures. Our example is a simple random walk search algorithm to solve boolean satisfiability (SAT) and our goal i...
متن کامل